﻿#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<string.h>
#include<stdlib.h>

//main65：指针的定义和使用
int main65()
{
	int a = 10;
	a = 20;
	//1.指针是一种数据类型，p是指针类型变量，用来指向一个变量的地址值；
	int* p = &a;
	int b = 100;
	//4.此时指针p的值是变量b的地址值；
	p = &b;
	printf("2.输出变量b的地址值：%p\n", &b);//0133FD80
	printf("3.输出指针变量p的值：%X\n", p);//133FD80

	*p = 200;
	printf("5.通过指针p修改变量b的值，*p就是变量b的值，修改后b的值：%d\n", b);//200
	printf("6.则修改后，*p的值为，应该会等于上面b的值：%d\n", *p);//200

	//9.下面两个，在32位操作系统中是4个字节大小。刚试了一下，用x64都编译不过去，准确点说，是编译器是32位；
		//64位是8个字节，我用x64没编译通过，视频说的，有时间再试吧。
	printf("7.指针类型变量p在内存中字节数的大小为：%d\n", sizeof(p));//4
	printf("8.对应的指针类型int*在内存中字节数的大小为：%d\n", sizeof(int*));//4
	printf("10.指针类型char*的字节数：%d\n", sizeof(char*));//4
	printf("11.指针类型short*的字节数：%d\n", sizeof(short*));//4
	printf("12.指针类型long*的字节数：%d\n", sizeof(long*));//4
	printf("13.指针类型float*的字节数：%d\n", sizeof(float*));//4
	printf("14.指针类型double*的字节数：%d\n", sizeof(double*));//4
	//15.无论是什么类型的指针，存的都是地址值，内存地址值都是无符号的整型，所以都是4个字节大小；

	system("pause");
	return EXIT_SUCCESS;
}